package cn.broadsense.biz.bo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;

/**
 * @author lijian
 * @description
 * @date 2024年09月24日 上午10:24
 */
@Data
@ApiModel(value = "ChannelDataBo", description = "数据点位管理")
public class ChannelDataBo {

    @ApiModelProperty("点位ID")
    @NotNull(message = "请选择点位")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long channelId;

    @ApiModelProperty("设备名称")
    @NotBlank(message = "设备名称不能为空")
    @Size(max = 64, message = "设备名称不能超过64个字符")
    private String deviceName;

    @ApiModelProperty("监控点编号")
    @NotBlank(message = "监控点编号不能为空")
    @Size(max = 200, message = "监控点编号不能超过200个字符")
    private String channelCode;

    @ApiModelProperty("设备像素")
    private String pixel;

    @ApiModelProperty("设备所属系统")
    private String deptName;

    @ApiModelProperty("设备ip")
    private String ipAddress;

    @ApiModelProperty("杆件编码")
    private String columnCode;

    @ApiModelProperty("经纬度")
    private String deviceGps;

    @ApiModelProperty("安装地址")
    private String installAddress;

    @ApiModelProperty("监控方向")
    private String monitorDirection;

    @ApiModelProperty("监控视角区域")
    private String monitorViewingArea;

    @ApiModelProperty("监控视距")
    private BigDecimal monitorDistance;

    @ApiModelProperty("设备高度")
    private BigDecimal deviceMonitorHigh;

    @ApiModelProperty("高低点位 1高点 2低点")
    private Integer highAndLowPoint;

}
